Autonomous vehicle pickup directed by socially derived meta data in public environments

ABSTRACT

Embodiments of the present invention disclose a method, computer program product, and system for directing movements of an autonomous vehicle. A vehicle operator exiting a vehicle is detected. A plurality of metadata is received wherein the plurality of metadata includes at least location data of a user and a timestamp. A pickup time and pickup location is identified based on received metadata. A route to the pickup location is generated based on at least a default location of the autonomous vehicle. The autonomous vehicle is directed to travel to the identified location such that the autonomous vehicle is arriving at the identified pickup time. Updates to the pickup location and pickup time are determined by dynamically monitoring received metadata. A modified route is generated, in response determining updates in one or more of the pickup location and pickup time and the autonomous vehicle is redirected to the updated pickup location.

BACKGROUND

The present invention relates generally to the field of automobiles, andmore particularly to autonomous vehicle driving using location data andsocial media.

Parking structures are a common necessity for all areas expecting massvisitation, especially within an urban environment. Improvements in thefield of vehicle automation may increase efficiency of shoppers, sportsfans, or any user of a parking structure. Parking structures mayimplement a form of automatic delivery of vehicles through ValetParking, but the cost and time associated with Valet Parking may beundesirable in an ever increasingly fast-paced world.

Embodiments of the present invention recognize that vehicle operatorsmust return to the same parking structure/environment to retrieve theirvehicle. Parking location within the structure is not under the controlof the vehicle operator as arrival time and availability, may be causetime and money to be expended in a suboptimal parking location. It maybe advantageous to utilize autonomous vehicles and the metadata fromsocial media of a user to predict where and when a vehicle should meetits operator to depart a given location.

SUMMARY

Embodiments of the present invention disclose a method, computer programproduct, and system for directing movements of an autonomous vehicle. Avehicle operator exiting a vehicle is detected. A plurality of metadatais received wherein the plurality of metadata includes at least locationdata of a user and a timestamp. A pickup time and pickup location isidentified based on received metadata. A route to the pickup location isgenerated based on at least a default location of the autonomousvehicle. The autonomous vehicle is directed to travel to the identifiedlocation such that the autonomous vehicle is arriving at the identifiedpickup time. Updates to the pickup location and pickup time aredetermined by dynamically monitoring received metadata. A modified routeis generated, the modified route includes one or more of an updatedpickup location and updated pickup time, in response determining updatesin one or more of the pickup location and pickup time and the autonomousvehicle is redirected to the updated pickup location based on themodified route.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a distributed dataprocessing environment, in accordance with an embodiment of the presentinvention.

FIG. 2 is a flowchart depicting operational steps of a vehicle pickupapplication, on a server computer within the data processing environmentof FIG. 1, in accordance with an embodiment of the present invention.

FIG. 3 is a flowchart depicting operational steps of an alternativeembodiment of vehicle pickup application, on a server computer withinthe data processing environment of FIG. 1, in accordance with anembodiment of the present invention.

FIG. 4 depicts a block diagram of components of the server computerexecuting the ingestion application, in accordance with an embodiment ofthe present invention.

DETAILED DESCRIPTION

Detailed embodiments of the claimed structures and methods are disclosedherein; however, it can be understood that the disclosed embodiments aremerely illustrative of the claimed structures and methods that may beembodied in various forms. This invention may, however, be embodied inmany different forms and should not be construed as limited to theexemplary embodiments set forth herein. Rather, these exemplaryembodiments are provided so that this disclosure will be thorough andcomplete and will fully convey the scope of this invention to thoseskilled in the art. In the description, details of well-known featuresand techniques may be omitted to avoid unnecessarily obscuring thepresented embodiments.

As autonomous vehicles become more prevalent it may be advantageous toenable autonomous vehicles to pick up and drop off the vehicle operatorautonomously while leveraging social media to accurately determinepickup locations. In various embodiments, social media metadata inconjunction with a Global Positioning System (GPS) may be utilized totrack and predict when and where a vehicle operator may want or need anautonomous vehicle. The autonomous vehicle may be directed to, forexample, the nearest road accessible location, available parking place,or event pick/drop off zone.

In various embodiments of the present invention, a method, computerprogram product, and a computer system is provided for directingmovements of an autonomous vehicle. The movements of an autonomousvehicle may be directed by detecting a vehicle operator exiting theautonomous vehicle. Metadata may be received from the vehicle operatorvia a device. The metadata may include location data of vehicle operatorand time information for accurate location detection. A pickup time andpickup location may be identified based on the received metadata inorder to generate a route for the autonomous vehicle from the autonomousvehicle's current location, or default location, to the vehicle operatorfor pickup. The autonomous vehicle may be directed to the pickuplocation such that the autonomous vehicle arrives at the identifiedpickup time.

In various embodiments, the received metadata may update, or change,over time and a new route may be generated based on updated metadata.The autonomous vehicle may be redirected one or more times based onchanges detected by the dynamic monitoring of the received metadata. Invarious embodiments, metadata may be location data based on a GPS, calllogs, pictorial data, video data, and audio data. Metadata may alsoinclude social media metadata associated with the vehicle operator. Thevehicle operator may communicate social media login information to allowfor datamining. Datamining may extract relevant data associated withlocations or travel plans the vehicle operator is currently engaged in,will be going, or has visited in the past, for example, names, businessnames, hashtags, hyperlinks, user tags, and the like.

In various embodiments, data is communicated to a second autonomousvehicle. A route time value for the autonomous vehicle and the secondautonomous vehicle is determined. The smallest route time value isidentified and one of the first or second autonomous vehicles associatedwith the smallest route time value is directed to the user.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating adistributed data processing environment for directing an autonomousvehicle to a vehicle operator, generally designated 100, in accordancewith one embodiment of the present invention.

Distributed data processing environment 100 includes server 110, client120, and autonomous vehicle system 130, all interconnected over network140. Server 110, client device 120, and autonomous vehicle system 130may be a laptop computer, tablet computer, netbook computer, personalcomputer (PC), a desktop computer, a smart phone, or any programmableelectronic device capable of communicating, for example, with clientdevice 120, via network 140 and with various components and deviceswithin the distributed data processing environment 100.

Server 110 includes vehicle pickup application 111. Vehicle pickupapplication 111 operates generally to receive metadata from varioussources. For example, vehicle pickup application 111 may receive socialmedia metadata, GPS location data, time stamps, or user preferences,from client device 120 via server 110. Vehicle pickup application 111may additionally receive data from autonomous vehicle system 130 when avehicle operator exits an autonomous vehicle, for example, via a doorsensor. Vehicle pickup application 111 may analyze the metadata todetermine what time and at what location the vehicle operator may need apickup. Vehicle pickup application 111 also includes data collectormodule 112, described in further detail below. Vehicle pickupapplication 111 may communicate the determined time and location, inorder to direct an autonomous vehicle to the vehicle operator'slocation. For example, vehicle pickup application 111 may direct anautonomous vehicle to the determined location via autonomous vehiclesystem 130.

Autonomous vehicle system 130 may operate generally to receiveenvironment data using a variety of techniques such as radar, LightDetection and Ranging (LIDAR), GPS, odometry, and visual data.Autonomous vehicle system 130 may interpret the received environmentaldata to identify appropriate navigation paths, as well as obstacles andrelevant signage. Autonomous vehicle system 130 may receive directionfrom vehicle pickup application 111 via server 110 and use the receiveddirection as the endpoint location, or vehicle operator location, andtime which autonomous vehicle system 130 must navigate. The endpointlocation may be, for example, the closest location to the vehicleoperator reachable by road, a designated parking area, a parking spot,or vehicle waiting area. Embodiments of the present invention recognizethat Bayesian Simultaneous localization and mapping (SLAM) algorithms,which fuse data from multiple sensors and an off-line map into currentlocation estimates and map updates, may be used to identify appropriatenavigation paths. Other algorithms may be used, for example, Real-TimeLocating Systems (RTLS), or Detection and Tracking of Moving Objects(DATMO). Autonomous vehicle system 130 may communicate environmentaldata to vehicle pickup application 111.

Vehicle pickup application 111 includes data collection module 112. Datacollection module 112 may operate generally to collect data andcommunicate the collected data to vehicle pickup application 111 inorder for vehicle pickup application 111 to determine what time and atwhat location the vehicle operator may need a pickup. In variousembodiments, the time and location of pickup may be predetermined by auser input received from client device 120 via server 110. For example,a vehicle operator may input time and destination information in vehiclepickup application 111 manually, or the estimated time when they willleave and what location will be optimal for the vehicle operator to meetthe vehicle. In various embodiments, data collection module 112 mayutilize data stored in a user profile associated with the vehicleoperator.

Data stored in a user profile may be analyzed such that pickup locationsmay be predicted or anticipated based on a pickup location history orfrequent pickup locations. The user profile data may enable vehiclepickup application 111 to determine a pickup location and pickup time ofthe vehicle operator without the need for manual input from the vehicleoperator.

In various embodiments, data collection module 112 may collect, forexample, calendar entries from calendars or agendas associated with thevehicle operator; social media events that involve appointments, ticketspurchased for events and other traceable data associated with socialmedia events; reservations and reservation system entries or any otherplace with a reservation system which can be accessed to harvest data;or digital shopping lists or “clipped” digital coupons for storeslocated at a destination. It should be appreciated that the above listis not exhaustive and data collection module 112 may collect other dataassociated with a vehicle operator, for example, location data andtime-at-location data. Digital signatures, which can indicate a userlocation and planned activities including social media interaction withother people or external requests for participation from influentialpeople, may be collected by data collection module 112.

In various embodiments, data collection module 112 may receive data bydatamining social media websites or websites associated with a vehicleoperator's location. For example, a vehicle operator may for a movie andmovie theater in a social media post. Data collection module 112 mayutilize datamining to analyze the social media post and linked websitefor operating hours of the theater, location of the theater, and theduration of the movie. Data collection module 112 may also extract dataassociated with attractions with proximity to the GPS location of thevehicle operator. In various embodiments, it may be advantageous fordata collection module 112 to use datamining to determine a moreaccurate physical location of the vehicle operator while at theattraction or event. Data collection module 112 may additional receivedata from client device 120 via network 140.

Client device 120 may operate generally to communicate social mediadata, GPS location data, time stamps, user profile requests, loginrequests, along with various other metadata or queries to vehicle pickupapplication 111 via network 140. Client device 120 may be capable ofdisplaying autonomous vehicle location data and communicating userinput, for example, a request or query from the vehicle operator.

Network 140 can be, for example, a local area network (LAN), a wide areanetwork (WAN) such as the Internet, or a combination of the two, and caninclude wired, wireless, or fiber optic connections. In general, network140 can be any combination of connections and protocols that willsupport communications between server 110 and client device 120.

FIG. 2 is a flowchart depicting operational steps of vehicle pickupapplication 111, directing an autonomous vehicle of the vehicles ofautonomous vehicle system 130, to a vehicle operator, within thedistributed data processing environment 100 of FIG. 1, in accordancewith an embodiment of the present invention.

A vehicle operator may exit an autonomous vehicle. In variousembodiments, autonomous vehicle system 130 may detect that the vehicleoperator has exited via door sensors, weight sensors, proximity sensors,or cameras. Autonomous vehicle system 130 may set a default location forthe autonomous vehicle once the vehicle operator exits the autonomousvehicle. The default location may be, for example, an assigned parkingspot, the driveway of a user, a parking lot, a concert hall, a waitingarea near the user. Alternatively, the default location determined bysocial media data collection as described below in relation to amultiple vehicle system. Autonomous vehicle system 130 may communicateto vehicle pickup application 111 that the autonomous vehicle hasreached the default location. In various embodiments, the defaultlocation may be set by the vehicle operator driving to a location andsetting that location as the default location via client device 120, ormerely entering the defaulting location using the application.

Vehicle pickup application 111 receives data from autonomous vehiclesystem 130 that the autonomous vehicle has arrived at a defaultlocation, in step 200. In various embodiments, the default location maybe predetermined remotely, for example, via user input via client device120, and autonomous vehicle system 130 may relocate to the predeterminedlocation autonomously or by a vehicle operator.

Vehicle pickup application 111 calculates the pickup time and pickuplocation, in step 210. In various embodiments, the pickup time andlocation may be calculated based on social media and/or GPS datacollection as described above in relation to data collector module 112.Vehicle pickup application 111 calculates, based on the location andlength of the concert, the time and location the user will need to bepicked up by the autonomous vehicle. This calculated pickup location andtime is based on the available data collected by data collector module112. In various embodiments, data collector module 112 may receivesocial media metadata from client device 120 via server 110 associatedwith a future event to be attended by the vehicle operator. The futureevent may indicate the potential location of the vehicle operator at afuture time. For example, a hashtag or social media post indicating thevehicle operator is attending a concert the next day may be received byvehicle pickup application 111. Vehicle pickup application 111 maycalculate a potential need for an autonomous vehicle at the future timeand direct an autonomous vehicle to a default location within ageographical threshold of the future event to anticipate the potentialneed.

For example, geographical locations may be determined to be a pendinglocation when the geographical locations associated with a count ofsocial media posts above a threshold. For example, vehicle pickupapplication 111 may receive social media metadata where a count ofhashtags “#ABCConcertHall” exceed a predetermined threshold. Vehiclepickup application 111 may communicate “ABC Concert Hall” to vehicleoperator as a potential/proposed pickup location, where the proposedpickup occurs at a future time.

In various embodiments, data collector module 112 may periodicallycommunicate changes in metadata to vehicle pickup application 111.Vehicle pickup application 111 may determine a new time and location topick up the vehicle operator based on the changes in received metadata.In various embodiments, the user may provide a predetermined pickup timeand pickup location to the autonomous vehicle via autonomous vehiclesystem 130. These requests may be based on a schedule associated with auser profile or user input via client device 120.

Vehicle pickup application 111 compares the calculated values for thepickup time and pickup location of vehicle operator and determines theoptimal route, time of departure and intermediate temporary parkinglocations for the vehicle, in step 220. The optimal route may becalculated such that the autonomous vehicle may reach the pickuplocation at the pickup time taking into account the travel time needed.

Various factors may determine travel time, for example, weather,traffic, construction, pedestrian interference due to an event, or otherfactors that vehicle pickup application 111 receives via social mediametadata collected by data collector module 112 or received from userinput via client device 120. In various embodiments, the autonomousvehicle is traveling to the vehicle operator at the pickup location andvehicle pickup application 111 may receive social media metadataindicating a delay event, for example, a parade. For example, thevehicle operator may in restaurant by a window and post on social mediausing hashtags indicating parade floats. Vehicle pickup application 111may determine a parade is occurring near the vehicle operator and analternative route may be required adding travel time to the optimalroute. In various embodiments, vehicle pickup application 111 maycommunicate a delay to the vehicle operator. Vehicle pickup application111 may direct an alternative autonomous vehicle to the vehicle operatorto mitigate delays, as described below in relation to an autonomousvehicle system with multiple vehicles.

Vehicle pickup application 111 monitors changes in the metadataassociated with the vehicle operator, in step 230. For example, a changein a daily agenda, social media posts or hashtag that indicate a delayor cancellation. In various embodiments, the vehicle operator maymanually request adjustments to the optimal route or time of departure.In various embodiments, the monitoring of social media associated withthe vehicle operator may occur periodically, for example, every 20minutes or at any predetermined time. The monitoring may also take placeat a time estimated by vehicle pickup application 111 based on thereceived social media metadata. For example, vehicle pickup application111 may increase the frequency of monitoring changes in social mediametadata changes 10 minutes before a movie attended by the vehicleoperator ends. In various embodiments, some data may be “pushed” tovehicle pickup application 111 automatically by social media websitesassociated with vehicle operated social media login information.

In various embodiments, multiple autonomous vehicles may be utilized ina system, for example, autonomous vehicle system 130. A multiple vehiclesystem may be advantageous reduce delays of vehicle departure and tooptimize best route for rendezvous with the vehicle operator. Data fromthe autonomous vehicles in the system may be compared to determine ifany obstacles, for example, traffic jams or accidents, may result in onevehicle being overly delayed. In various embodiments, if a delay isdetermined, an alternative vehicle may be directed to the vehicleoperator. In various embodiments, multiple vehicles may converge on atemporary parking locations close to the expected vehicle operatorpickup location can be leveraged for larger events, such as movieshowings or concerts, where multiple pickups may be needed. In variousembodiments, if social media posts associated with a particular locationexceed a threshold, vehicle pickup application 111 may set that locationas a default location and direct one or more autonomous vehicles to thedefault location in anticipation of multiple needed pickups.

Vehicle pickup application 111 determines the calculated pickup time fora calculated pickup location is outside a threshold, in decision step240 “YES” branch. Vehicle pickup application 111 may communicate withother autonomous vehicles connected to the system in order to determineif another autonomous vehicle can reach the pickup location at thepickup time given the determined travel time for the first autonomousvehicle will not allow the first autonomous vehicle to reach the pickuplocation within a threshold of the pickup time. In various embodiments,the threshold may be predetermined by the vehicle operator. For example,the vehicle operator may indicate that there is a desire not to waitlonger than 10 minutes for a pickup. In various embodiments, thethreshold may be determined by social media metadata, for example,social media posts indicating frustration or dissatisfaction with theautonomous vehicle or the experienced wait time. For example, if thevehicle operator posts “#late” on social media, vehicle pickupapplication 111 may determine the current autonomous vehicle's routetime is outside a threshold and a new autonomous vehicle is needed.

Vehicle pickup application 111 determines the autonomous vehicle with atravel time that would reach the pickup location closest to the pickuptime, in step 250, and matches the autonomous vehicle with the besttravel time to the vehicle operator waiting for a pickup. While thematched autonomous vehicle is traveling to the pickup location, vehiclepickup application 111 periodically compares the route times andlocations of other vehicles in the system, in step 260, to determine ifthere is a vehicle with an even better match. This may be advantageousin order to ensure proper flow between one or more cars, for example,when exiting a large event to go to another large event where there aremultiple delays at multiple locations.

If vehicle pickup application 111 determines an optimal route and traveltime is at or below a threshold, in decision step 240 “NO” branch,vehicle pickup application 111 directs the autonomous vehicle to thepickup location at the pickup time, in step 270. In various embodiments,after the autonomous vehicle picks up the vehicle operator, social mediametadata associated with the vehicle operator continues to be monitoredby vehicle pickup application 111. The continued monitoring maydetermine a satisfaction level associated with the user profileassociated with the vehicle operator and an experience rating thevehicle operator had with autonomous vehicle system 130.

In various embodiments, vehicle pickup application 111 may be anapplication on a mobile device that requires a user profile and loginauthentication associated with the vehicle operator. Vehicle pickupapplication 111 may receive the login data from client device 120, forexample, as a query through a web browser. The vehicle operator mayprovide some data in order to login, for example, social network logininformation, names, calendar information, agenda information, cloudcalendar applications, and the like.

FIG. 3 is a flowchart depicting an alternative embodiment whichautonomous vehicle is directed to a vehicle operator for pick up, inaccordance with an embodiment of the present invention.

Vehicle pickup application 111 detects a vehicle operator exiting anautonomous vehicle, in step 300. In various embodiments, vehicle pickupapplication 111 receives data that the operator has left the vehiclefrom client device 120 via a mobile app, GPS, dongle proximity, or anyother detection method for exiting a vehicle. In various embodiments,vehicle pickup application 111 receives exit data from autonomousvehicle system 130.

Vehicle pickup application 111 receives a plurality of metadataassociated with the vehicle operator, in step 310. In variousembodiments, the metadata includes at least location data and a timestamp. In various embodiments, metadata may include timestamp data,location data associated with a Global Positioning System (GPS), userprofile history, call logs, pictorial data, visual data, or audio dataassociated with a user profile that includes stored metadata associatedwith the vehicle operator.

Vehicle pickup application 111 generates a user profile associated withthe vehicle operator based on the received metadata, in step 320. Invarious embodiments, vehicle pickup application 111 generates a userprofile in response to receiving a subscription request from the vehicleoperator via a device, for example, client device 120. The subscriptionrequest may include identification information associated with thevehicle operator, for example, a name, or ID and password. The receivedmetadata associated with the vehicle operator may be stored in thegenerated user profile. Location data associated with the user profileis identified and a set of suggested locations for display may becommunicated to a user device, based on the user profile. In variousembodiments, location data may be received by vehicle pickup application111 from a user device, for example, client device 120. Location datamay include data based on a Global Positioning System (GPS) or pictorialdata indicating a location, for example, a picture of a park sign orstorefront from which a location can be determined. In variousembodiments, audio signals may be used to determine a vehicle operator'slocation using acoustic location determination or other methods known inthe art.

Vehicle pickup application 111 monitors for changes in the receivedmetadata, in step 330. In various embodiments, vehicle pickupapplication 111 may query client device 120 or autonomous vehicle system130 for changes in the metadata associated with the vehicle operator oruser profile. The monitoring may be periodic, for example, every minute,5 minutes, or 20 minutes or at any predetermined time determined by thevehicle operator. Alternatively, the application may dynamically adjustthe monitoring period based on the time of day or the detected socialactivity of the vehicle operator.

Vehicle pickup application 111 extracts extracting data of locationbased on at least the location data and timestamp, in step 340. In step350, vehicle pickup application 111 in response to identifying a timeand location for pickup based on extraction data, a pickup locationcoordinate values and pickup time value is generated. In variousembodiments, identified time and locations may be communicated to one ormore autonomous vehicles in order to determine if there is an autonomousvehicle in a more advantageous position, for example, a no traffic areaor closer proximity to vehicle operator. Using multiple cars may beadvantageous as communicating user profile data to a second or thirdautonomous vehicle allow the determination of multiple route timevalues. The smallest route time value is identified and the autonomousassociated with the smallest route time value is directed to the vehicleoperator's location, in step 360.

Vehicle pickup application 111 monitors the user profile and, inresponse to updates to the user profile, modifies the travel locationand pickup time value, in step 370. In various embodiments vehiclepickup application 111 may monitor the GPS location data of a vehicleoperator, for example, through a shopping trip. The vehicle operator mayenter the mall on the west side but move throughout the whole mall andwish to exit on the opposing east wall of the mall. Vehicle pickupapplication 111 may monitor the movement through the mall and direct theautonomous vehicle to travel to the east wall of the mall when the useis approaching the last few shops by the east wall. This way the vehicleoperator's location may be predicted which leads to shorter wait timesfor an autonomous vehicle.

In various embodiments of the present invention, vehicle pickupapplication 111 may be stored within an autonomous vehicle computersystem on board an autonomous vehicle(s) connected within autonomousvehicle system 130. Autonomous vehicle system 130 may detect the exit ofa vehicle operator, via, for example, a door sensor, seat sensor, RFIDin a cell phone, dongle, or fob key. Autonomous vehicle system 130 mayassociate the exit signal with the vehicle operator and monitor socialmedia and GPS location associated with the vehicle operator. Autonomousvehicle system 130 may receive a pickup request, or determine a pickuptime and pickup location as described above, and communicate with othervehicles within autonomous vehicle system 130 to determine the bestvehicle and route to pick up the vehicle operator.

In various embodiments, a user profile may be generated in response tovehicle pickup application 111 receiving a subscription request, whereinthe subscription request includes an identification and password.Vehicle pickup application 111 may generate a user profile associatedwith the identification, the identification being associated with thevehicle operator. The identification may include access to social mediaaccounts associated with the vehicle operator. Vehicle pickupapplication 111 may associate received metadata associated with thevehicle operator to the generated user profile. Vehicle pickupapplication 111 may collect and correlate social media posts associatedwith geographical locations and identify common or often visitedlocations based on the received metadata. Vehicle pickup application 111may communicate a set of suggested travel locations for display on auser device associated with the vehicle operator, based on the userprofile. In response to an input selection by the vehicle operator,vehicle pickup application 111 may direct an autonomous vehicle to thevehicle operator for pickup and travel to a location based on the inputselection.

In various embodiments, it may be advantageous to optimize the parkingand pickup of a vehicle operator from a parking structure by utilizingexisting, social media derived, metadata sources and analytics todetermine, update, and relocate an autonomous vehicle automatically oron demand by a vehicle operator with a specific time and location. Forexample, directing an autonomous vehicle to be at the nearest possibleparking place to the vehicle operator at a predetermined time. Invarious embodiments, predictive time and location may be determinedusing data analysis across a broad range of inputs, for example, movieshow times, restaurant closing times, expected occupancy time atentertainment venues, etc. to predict when the autonomous vehicle may beneeded, and position it appropriately, up to and including a generalautonomous valet service at a specific location or venue to minimizedelays while waiting for a vehicle to be retrieved.

For example, if a vehicle will not be needed for a time interval above athreshold, the parking environment may be configured by having thevehicle autonomously position itself further away during that time,factoring in the increased drive time needed to bring the vehicle backwhere it will be need and predict when it will be needed. It may beadvantageous to utilize autonomous vehicle parking in large shoppingenvironments or busy entertainment districts, where you may enter thevenue at one side, and want to meet your vehicle at another location.

In various embodiments of the present invention, the internal carenvironment may be adjusted prior to the autonomous vehicle reaching thepickup location. For example, the cooling, heating, seat position,and/or steering wheel position of the autonomous vehicle may be based onthe vehicle operator's preferences or profile just prior to rendezvouswith the autonomous vehicle. It may be advantageous to integrate thesettings adjustments with the Global Positioning System (GPS) locationand pickup time to allow for location data to assist in cat adjustments.For example, if the autonomous vehicle is facing east in the morning theautonomous vehicle system 130 may adjusts tinting in the windows beforethe autonomous vehicle reaches the pickup location.

FIG. 4 depicts a block diagram of components of server 110 ofdistributed data processing environment 100 of FIG. 1, in accordancewith an embodiment of the present invention. It should be appreciatedthat FIG. 4 provides only an illustration of one implementation and doesnot imply any limitations with regard to the environments in whichdifferent embodiments may be implemented. Many modifications to thedepicted environment may be made.

Server 110 may include one or more processors 402, one or morecomputer-readable RAMs 404, one or more computer-readable ROMs 406, oneor more computer readable storage media 408, device drivers 412,read/write drive or interface 414, network adapter or interface 416, allinterconnected over a communications fabric 418. Communications fabric418 may be implemented with any architecture designed for passing dataand/or control information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system.

One or more operating systems 410, and one or more application programs411, for example, vehicle pickup application 111, are stored on one ormore of the computer readable storage media 408 for execution by one ormore of the processors 402 via one or more of the respective RAMs 404(which typically include cache memory). In the illustrated embodiment,each of the computer readable storage media 408 may be a magnetic diskstorage device of an internal hard drive, CD-ROM, DVD, memory stick,magnetic tape, magnetic disk, optical disk, a semiconductor storagedevice such as RAM, ROM, EPROM, flash memory or any othercomputer-readable tangible storage device that can store a computerprogram and digital information.

Server 110 may also include an R/W drive or interface 414 to read fromand write to one or more portable computer readable storage media 426.Application programs 411 on server 110 may be stored on one or more ofthe portable computer readable storage media 426, read via therespective R/W drive or interface 414 and loaded into the respectivecomputer readable storage media 408.

Server 110 may also include a network adapter or interface 416, such asa TCP/IP adapter card or wireless communication adapter (such as a 4Gwireless communication adapter using Orthogonal Frequency-DivisionMultiple Access (OFDMA) technology) for connection to a network 428.Application programs 411 on server 110 may be downloaded to thecomputing device from an external computer or external storage devicevia a network (for example, the Internet, a local area network or otherwide area network or wireless network) and network adapter or interface416. From the network adapter or interface 416, the programs may beloaded onto computer readable storage media 408. The network maycomprise copper wires, optical fibers, wireless transmission, routers,firewalls, switches, gateway computers and/or edge servers.

Server 110 may also include a display screen 420, a keyboard or keypad422, and a computer mouse or touchpad 424. Device drivers 412 interfaceto display screen 420 for imaging, to keyboard or keypad 422, tocomputer mouse or touchpad 424, and/or to display screen 420 forpressure sensing of alphanumeric character entry and user selections.The device drivers 412, R/W drive or interface 414 and network adapteror interface 416, may comprise hardware and software (stored on computerreadable storage media 408 and/or ROM 406).

References in the specification to “one embodiment”, “an embodiment”,“an example embodiment”, etc., indicate that the embodiment describedmay include a particular feature, structure, or characteristic, butevery embodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it is submitted that it is within the knowledge of oneskilled in the art to affect such feature, structure, or characteristicin connection with other embodiments whether or not explicitlydescribed.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay be executed substantially concurrently, or the blocks may sometimesbe executed in the reverse order, depending upon the functionalityinvolved. It will also be noted that each block of the block diagramsand/or flowchart illustration, and combinations of blocks in the blockdiagrams and/or flowchart illustration, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts or carry out combinations of special purpose hardware and computerinstructions.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

Based on the foregoing, a computer system, method, and computer programproduct have been disclosed. However, numerous modifications andsubstitutions can be made without deviating from the scope of thepresent invention. Therefore, the present invention has been disclosedby way of example and not limitation.

What is claimed is:
 1. A computer program product for directing movements of autonomous vehicles, the computer program product comprising: one or more non-transitory computer-readable storage media and program instructions stored on the one or more non-transitory computer-readable storage media capable of performing a method, the method comprising: in response to crossing a predetermined geographical threshold, receiving metadata identifying at least a location of a vehicle operator, social media posts associated with the vehicle operator, and timestamps associated with the social media posts; identifying an event attended by the vehicle operator based on the received metadata; estimating a duration of the event based on the received metadata; identifying a pickup time and a pickup location based on the identified event and the estimated duration; receiving traffic data associated with the geographic threshold; generating one or more routes to the identified pickup location at the identified pickup time from a plurality of autonomous vehicles; determining a travel time value for each of the one or more generated routes based on the received traffic data; selecting a first autonomous vehicle of the plurality of autonomous vehicles having a shortest determined travel time value; directing the first autonomous vehicle to travel to the identified pickup location based on the estimated duration and determined travel time value such that the first autonomous vehicle arrives at the identified pickup location at the identified pickup time; increasing a frequency at which updates to the pickup location, pickup time, and the first autonomous vehicle travel time value are reassessed as the estimated duration lapses; generating a modified route based on the reassessments; and redirecting the first autonomous vehicle to the updated pickup location based on the generated, modified route. 